<%@ page language="java" contentType="text/json; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@page trimDirectiveWhitespaces="true"%>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page language="java" import="java.lang.*" %>
<%@ page import = "java.sql.SQLException" %>
<%@ page import = "com.seniorproject.aims.*" %>
<%@ page import = "java.util.List" %>
<%@page import="java.util.ArrayList"%>
<%@ page import = "java.util.Properties" %>
<%@ page import = "javax.servlet.ServletContext" %>
<%@ page import = "java.io.File" %>
<%@ page import = "java.io.InputStream" %>
<%@ page import = "org.codehaus.jackson.JsonGenerationException" %>
<%@ page import = "org.codehaus.jackson.map.JsonMappingException" %>
<%@ page import = "org.codehaus.jackson.map.ObjectMapper" %>
<%@ page import = "java.io.IOException" %>

<%
	//get session
	String strUser = String.valueOf(session.getAttribute("sUser"));
	HttpSession htp_session = request.getSession();
	
	// check session
	if (htp_session == null || htp_session.getAttribute("sUser") == null) {
	    // Forward the control to login.jsp if authentication fails or session expires
	    request.getRequestDispatcher("/login.jsp").forward(request,
	        response);
	}
	
	//GOT PROBLEM
	//if("admin".equals(htp_session.getAttribute("sUser"))){%>
	<%/*<!--<script>alert("This user dont have PERMISSION to access this zone.");</script>-->*/%>
	<%//<meta HTTP-EQUIV="Refresh" CONTENT="0; URL=admin_home.jsp"> 	%>
	<%//}
	
System.out.println("@ searcn name");////////////try//////////

	//get parameter
	String name = request.getParameter("name");
	
	System.out.println("name : "+name);////////////try//////////
	
	//set Database Connection
	String hostProps = "";
	String usernameProps  = "";
	String passwordProps  = "";
	String databaseProps = "";
	
	try {
		//get current path
		ServletContext servletContext = request.getSession().getServletContext();
		
		InputStream input = servletContext.getResourceAsStream("/properties/connectDB.properties");
		Properties props = new Properties();
		
		props.load(input);
	
		hostProps  = props.getProperty("host");
		usernameProps  = props.getProperty("username");
		passwordProps  = props.getProperty("password");
		databaseProps = props.getProperty("database");
	} catch (Exception e) { 
		out.println(e);  
	}
	
	// connect database
	Connection connect = null;		
	try {
		Class.forName("com.mysql.jdbc.Driver");
	
		connect =  DriverManager.getConnection("jdbc:mysql://" + hostProps  + "/" + databaseProps +
		"?user=" + usernameProps  + "&password=" + passwordProps + "&characterEncoding=tis620" );
	
		if(connect != null){
	System.out.println("Database Connect Sucesses.");
		} else {
	System.out.println("Database Connect Failed.");	
		}
	
	} catch (Exception e) {
		out.println(e.getMessage());
		e.printStackTrace();
	}
	
	// search name in database
	List<People> people = new ArrayList<People>();
	String Json="";
	ObjectMapper mapper = new ObjectMapper();
	
	try {			   
		ResultSet rs =  connect.createStatement().executeQuery("SELECT F.name_th, F.surname_th, P.index "
			+ " FROM full_name F, people P "
			+ " WHERE F.index=P.index "
			+ " AND F.name_th LIKE '"+ name + "%'" );
		
		while(rs.next()) {
			People peo = new People();
			
			peo.setNameTH(rs.getString("name_th"));
			peo.setSurnameTH(rs.getString("surname_th"));
			peo.setIndex(rs.getString("index"));
			
			people.add(peo);
			
			if(people.size()==10) break;
		}
		

		try {
			Json = mapper.writeValueAsString(people); 
		} catch (JsonGenerationException ex) {
			ex.printStackTrace();
		} catch (JsonMappingException ex) {
			ex.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		
		out.print(Json);
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	connect.close();
%>